题
我从CSC.EXE编译(当然,CruiseControl是...),并且我需要在GAC引用一个DLL。我没有这个DLL一个简单的文件的正确版本,但在GAC一个正确的版本。
但是,不能引用组件在GAC与CSC - 你必须有路径到实际文件
我发现一些参考,声称可以反向工程的路径,实际的文件,但我一直没能得到他们的工作。我启动了融合记录,我可以看到运行正从该文件,但在我的参考使用文件路径到该位置不起作用。
那么,你如何提供CSC一起,只有在GAC中存在的程序集版本的参考?
解决方案
我也有类似的问题。我所用的溶液是打开一个命令,改变目录类似下面的(改变它取决于哪个组件要):
C:\WINDOWS\assembly\GAC_MSIL\System.Web.Extensions\3.5.0.0__31bf3856ad364e35\
您可以那么DLL这个目录中的某处复制GAC之外。
其他提示
我推荐使用的Nant或MSBuild的,只是使用由Visual Studio生成的.csproj的文件。然后简单地得到CruiseControl的使用您的南特脚本。下面是从脚本南特我写,
的提取物<csc target="library" output="${basedir}/bin/${basename}.dll" debug="${debug}" optimize="true">
<sources>
<include name="src/app/**/*.cs"/>
</sources>
<references refid="My.Assemblies" />
</csc>
和的参考文献
<assemblyfileset id="My.Assemblies"><include name="System.dll"></include>
<include name="System.Configuration.dll"></include>
<include name="System.Core.dll"></include>
<include name="System.Data.dll"></include>
<include name="System.Data.DataSetExtensions.dll"></include>
<include name="System.Drawing.dll"></include>
<include name="System.EnterpriseServices.dll"></include>
<include name="System.Web.dll"></include>
<include name="System.Web.Extensions.dll"></include>
<include name="System.Web.Mobile.dll"></include>
<include name="System.Web.Services.dll"></include>
<include name="System.Xml.dll"></include>
<include name="System.Linq.dll"></include>
</assemblyfileset>
当我靠在Excel中PIA的编译,我用这个路径指定CSC.EXE在命令行上的引用: C:\ Windows \组件\ GAC \的Microsoft.Office.Interop.Excel \ 11.0.0.0__71e9bce111e9429c \ Microsoft.Office.Interop.Excel.dll
编译成功了。
?? 这难道不是为你工作?
不隶属于 StackOverflow