0

我编写了一个无法编译的内联 msbuild 任务。错误显示“'Namespace' 属性已设置但为空。如果设置了 'Namespace' 属性,则它不能为空。” 注意:这是一个 Wix 安装程序项目。这是我的代码:

<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
         <ConnectionString Condition=" '$(ConnectionString)' == ''">Server=???;Database=???;Integrated Security=True;</ConnectionString>
         <SqlCommand Condition=" '$(SqlCommand)' == '' ">???</SqlCommand>
    </PropertyGroup>

    <UsingTask 
        TaskName="ExecuteScalar" 
        TaskFactory="CodeTaskFactory"
        AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
            <ParameterGroup>
                <ConnectionString ParameterType="System.String" Required="true" />
                <CommandText ParameterType="System.String" Required="true" />
                <Result ParameterType="System.String" Output="true" />
            </ParameterGroup>
        <Task>
            <Reference Include="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Data.dll" />      
            <Using Namespace="System.Data.SqlClient" />
            <Using Namepsace="System.Data.Sql" />
            <Code Type="Fragment" Language="cs"><![CDATA[
                using (SqlConnection conn = new SqlConnection(ConnectionString))
                {

                  conn.Open();

                  using (SqlCommand cmd = new SqlCommand(CommandText, conn))
                  {
                    cmd.CommandType = System.Data.CommandType.Text;             

                    Result = cmd.ExecuteScalar() as string;
                  }}]]>
             </Code>
        </Task>
    </UsingTask>

    <Target Name="MyTarget">   
        <ExecuteScalar ConnectionString="$(ConnectionString)"
                   CommandText="$(SqlCommand)">
            <Output TaskParameter="Result" PropertyName="MyProperty" />
        </ExecuteScalar>
    </Target>

    <PropertyGroup>
        <BuildDependsOn>
            BeforeBuild;
            CoreBuild;
            AfterBuild
        </BuildDependsOn>
    </PropertyGroup>

    <Target Name="Build" DependsOnTargets="$(BuildDependsOn)" />

    <PropertyGroup>
         <BuildDependsOn>
            MyTarget;
            $(BuildDependsOn)
         </BuildDependsOn>
    </PropertyGroup>

当我搜索此错误时,我找不到任何东西。我很感激任何帮助。

我一直在参考:

4

1 回答 1

4

你这里有一个错字:

<Using Namepsace="System.Data.Sql" />

更改NamepsaceNamespace

于 2014-06-21T17:06:20.823 回答