我从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

编译成功了。

?? 这难道不是为你工作?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top