问题 为什么重新安装Silverlight会破坏我的导入配置?


基于这里的答案: 我应该卸载哪些(如果有的话)最近的Windows更新来重新启动Silverlight或纠正其他问题?,我卸载/重新安装Silverlight并重新启动。但是,现在,我得到一个编译错误,即:

“未找到导入的项目”C:\ Program Files(x86)\ MSBuild \ Microsoft \ Silverlight \ v5.0 \ Microsoft.Silverlight.CSharp.targets“。确认声明中的路径是否正确,以及该文件存在于磁盘上。“

它指向* .csproj文件中的这一行:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Silverlight\$(SilverlightVersion)\Microsoft.Silverlight.CSharp.targets" />

我完全不明白这是做什么的;如果这是远方可以理解的东西,我需要做些什么才能解决这个难题?

UPDATE

当我尝试安装Silverlight 4工具时(因为某些指示是/解决方案,例如at Silverlight 4:没有找到解决Microsoft.Silverlight.CSharp.targets的问题?),我明白了,“安装要求:

必须先安装与Silverlight Tools 4的语言版本匹配的Visual Studio 2010或Visual Web Developer Express 2010或Visual Phone Developer Express 2010,然后才能继续安装Silverlight Tools。 Silverlight Tools提供其他语言版本 http://go.microsoft.com/fwlink/?LinkId=177432。 “

一世  已安装VS 2010(SP1)。我甚至安装了VS Express(2012)用于Web!

更新2

根据另一个提示,我还安装了Silverlight 4 SDK,但试图只是 打开 现在,我得到了这个项目,“在打开Silverlight项目'Bla'之前,你需要安装最新的Silverlight Developer运行时。” 它让我安装了Silverlight 5(再次)。

我这样做了,但我重新启动了,并且......仍然得到同样的错误消息...

更新3

根据我得到的线索: http://connect.microsoft.com/VisualStudio/feedback/details/573750/the-imported-project-path-microsoft-webapplication-targets-was-not-found

我在csproj文件中替换了这一行:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Silverlight\$(SilverlightVersion)\Microsoft.Silverlight.CSharp.targets" />

......这一个:

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />

...而且我比以前更进一步,但我不知道最后一次更改是否是必要的更改,或者上面列举的所有步骤是否都是必要的。除了暗影之外,很可能没有人知道。

更新4

实际上,简单地说 加入 那条线(无需替换另一条),项目 编译,但似乎失去了对Razor或其他东西的了解,因为它失败了这个YSOD:

Server Error in '/TLDReporter' Application.
Compilation Error

Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. 

Compiler Error Message: CS0103: The name 'Helprs' does not exist in the current context

Source Error:


Line 493:                <div class="inner" style="width: 300px;">
Line 494:                    <p id="portal_breadcrumbs" class="breadcrumb">
Line 495:                        @Helprs.Sitemap(ConfigurationManager.AppSettings["ApplicationHome"])
Line 496:                    </p>
Line 497:                </div>

Source File: c:\Project\. . .\Shared\_Layout.cshtml    Line: 495

更新5

好吧,无论出于什么原因,在地平线上恍然大悟的短暂瞥见只是一个短暂的海市蜃楼 - 同样的错误在发布之前的更新后立即返回。

但是,一旦我更换了这个:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Silverlight\$(SilverlightVersion)\Microsoft.Silverlight.CSharp.targets" />

...有了这个:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Silverlight\v4.0\Microsoft.Silverlight.CSharp.targets" />

......基于此: http://msdn.microsoft.com/en-us/library/ff921165(v=PandP.20).aspx

...我进一步,但再次回到这个编译点:

@Helprs.Sitemap(ConfigurationManager.AppSettings["ApplicationHome"])

更新6

所有这一切都很奇怪的是解决方案编译,但是当我运行它时,它会抛出一个声称是编译错误结果的YSOD。为什么编译器会成功编译,但是当我去运行应用程序时,突然停止,以一种不自然的刺耳的语调尖叫出“编译错误”?


5364
2018-06-24 18:42


起源

升级到VS2013后我遇到了同样的问题,但没有找到任何解决方案。我发布了它 stackoverflow.com/questions/20054544/... - Andrus
+100非常感谢您非常详细的帖子。您的更新5在更新VS 2015后修复了我的Silverlight问题。我希望我能一次又一次地支持这篇文章。感谢你! - Annie Lagang
@AnneLagang:我很高兴它有所帮助! - B. Clay Shannon


答案:


我有同样的问题,我只是修复我的Visual Studio 2012安装(Developer Kit Silverlight未经检查)之后,一切都很好


5
2017-10-18 13:50



我去了 Modify 代替 Repair,之后 VS 提示我安装 Silverlight Developer (也提供下载链接)。只有这样才对我有用。 - Veverke


安装“Microsoft Silverlight 5 SDK”和x64运行时 为我工作。

SDK https://www.microsoft.com/en-us/download/details.aspx?id=28359

64位 https://www.microsoft.com/en-my/download/details.aspx?id=28358


9
2017-12-14 13:21



我知道这已经很老了,但我想知道现在是否可以通过Nuget包获得相同的内容: nuget.org/packages/Unofficial.SilverlightToolkit-All   我不是.NET程序员,所以我不知道这是否真的是SDK。 - jrk
只是安装SDK解决了我的问题,谢谢。 - Yan Sklyarenko
检查这两个项目以及 适用于Visual Studio的Microsoft®Silverlight®5工具 正如@msgeek所提到的,为我修好了。 - Bahamut
谢谢,这帮助了我。 - Naveen


根据您的版本下载并安装适用于Visual Studio的Microsoft Silverlight 5工具,解决了我的问题 VS2010链接 - http://www.microsoft.com/en-us/download/details.aspx?id=28358


2
2018-03-11 20:18



对我有用的是安装VS2013的等效产品: microsoft.com/en-us/download/details.aspx?id=28359 - Jacek Gorgoń