Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2012 网站项目:希望在生成时生成XML文档_Visual Studio 2012_Web Site Project_Xml Documentation - Fatal编程技术网

Visual studio 2012 网站项目:希望在生成时生成XML文档

Visual studio 2012 网站项目:希望在生成时生成XML文档,visual-studio-2012,web-site-project,xml-documentation,Visual Studio 2012,Web Site Project,Xml Documentation,出于遗留的原因,我正在维护一个Web站点项目,我希望为其提供来自XML文档注释的最新文档。我想我可以通过调整web.config中的部分来做到这一点。我终于达到了这一点: <system.codedom> <compilers> <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeP

出于遗留的原因,我正在维护一个Web站点项目,我希望为其提供来自XML文档注释的最新文档。我想我可以通过调整
web.config
中的
部分来做到这一点。我终于达到了这一点:

  <system.codedom>
    <compilers>
      <compiler
        language="c#;cs;csharp"
        extension=".cs"
        type="Microsoft.CSharp.CSharpCodeProvider"
        compilerOptions="/optimize /doc:C:\temp\my-output-here.xml"
        warningLevel="1" />
    </compilers>
  </system.codedom>

现在,当我使用(并因此调用即时编译)启动网站时,我确实会在请求的位置获得一个XML文件,但它是最小的:

<?xml version="1.0"?>
<doc>
    <assembly>
        <name>App_global.asax.abqhzva4</name>
    </assembly>
    <members>
    </members>
</doc>

但提供的链接已重定向到Sandcastle站点。这很好,但这比我在这个项目中实际使用的要多得多。只需在构建时或运行时获取XML文档即可


然后我的问题是:我需要做什么才能获得
配置条目来为网站项目生成XML文档?

我还有一个难看的解决方法。。。但是现在开始了

1。从此页面下载最新的Sandcastle安装程序-

2.解压缩并运行安装程序

3.
EWSoftware.CodeDom.dll
复制到您网站的
\bin
目录中。此文件的默认位置为-
C:\ProgramFiles(x86)\EWSoftware\Sandcastle帮助文件生成器\Extras\EWSoftware.CodeDom.dll

4.修改web.config如下:

<configuration>
  <system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs"
        compilerOptions="/docpath:C:\Publish\Docs"
        type="EWSoftware.CodeDom.CSharpCodeProviderWithDocs, EWSoftware.CodeDom"
      >
        <!-- NOTE: Change version value as needed (v3.5, v4.0, etc.) -->
        <providerOption name="CompilerVersion" value="v4.0"/>
      </compiler>
    </compilers>
  </system.codedom>
</configuration>

资料来源:


5.重建您的解决方案,瞧!使用
/docpath
选项指定的文件夹将包含您的XML文档。

我喜欢这样!当然,这意味着要安装所有的Sandcastle,但结果是维护成本很低。好的,谢谢。我有一种预感,每个目录都是通过对csc.exe的新调用构建的。使用原始技术,在构建每个文件夹时,输出XML文件将覆盖上一个文件夹的XML文件。因此,您所看到的只是上一个编译文件夹的XML文件。因此需要Sandcastle编译器,它为每个文件夹提供一个唯一命名的XML文件,或者为每个文件调用csc.exe?关键是,如果进行了多个调用,则需要一种为每个调用指定目标XML文件的方法。