小编hel*_*elb的帖子

在使用MSBuild发布之前执行web.config转换

我正在尝试使用MS Build为两个Web应用程序进行Web部署发布,以供内部使用和测试.我为每个要发布的环境设置了不同的解决方案配置.IE DevA,DevB.我已经更新了所有web.configs来进行正确的转换.作为一个注释,当我通过Visual Studio进行右键单击发布时,转换工作,所以我已经将这些作为问题排除.我正在运行的当前bat文件使用此命令来完成工作:

"C:\ Program Files(x86)\ MSBuild\12.0\Bin\msbuild"project.csproj/t:Clean; Rebuild; Publish/p:DeployOnBuild = true; PublishProfile = DevB1_API; AllowUntrustedCertificate = True; username = username; password =密码

当我运行此命令时,发布工作正常.但是,web.config没有被转换.我错过了一个msbuild参数来强制这种情况发生吗?任何帮助,将不胜感激!谢谢.

c# asp.net msbuild

23
推荐指数
1
解决办法
8343
查看次数

C#中的"抽象"界面

这是一个学术问题. 可以说它背后有一个XY问题,我可以稍后单独发布.但我真正的学术问题特别感兴趣,在这里.


我经常发现我有一组接口,它们都有共同的属性.我想要定义一个基本接口以使其共同化,部分原因是缺乏重复,部分原因是我可以在不知道确切类型的情况下传递对象并使用常用方法.

也许我有IFooRepository,IBarRepository等等,我可以宣布IRepository<TEntity>.

或者我有IHappyBot,ISadBot,IConfusedBot,都具有IBot共同点.

值得注意的是,没有一个类可以直接实现这些基本接口 - 你永远不会有一些只能 实现的东西IBot.

如果我们在讨论的层次结构而不是接口,那么我会说"啊......基本的东西是抽象类".

有什么类似的东西我可以用接口来记录IBot不会直接实现的期望.

我感兴趣的一个方面是做一些你以后可以通过反射检测的东西,这样当我测试我的DI设置时,我可以说"啊,这个界面不应该是可绑定的,因为它是"抽象的" .


我主要关心C#,但是如果这个功能特别存在于其他主要语言中,那么听到它会很有趣.

c# abstract-class interface

18
推荐指数
2
解决办法
2928
查看次数

SharePoint错误:服务器不允许大于2097152字节的邮件

我有指向sharepoint 2013 Office 365的Web服务.我使用客户端对象模型.我正在尝试更新存储4个附件的xml文件.当我在xml文件中有大量二进制数据时执行此操作时,出现以下错误:

信息

请求消息太大了.服务器不允许大于2097152字节的消息.

我意识到我可能不得不分离xml文件中的附件,但目前我的infopath表单将它们存储在那里.有没有办法可以增加请求长度或者可以节省大量的东西.我真的只是修改一个节点,除非我更新xml,否则它将无法工作.谢谢 .代码如下.

我的代码:

ListItem docReq = GetDocRequestLight(docRequestID, businessID);
string fPath = (string)docReq["FileRef"];
using (FileInformation fInfo = Microsoft.SharePoint.Client.File.OpenBinaryDirect(ctx, fPath))
{
    XmlDocument xmlDoc = new XmlDocument();
    xmlDoc.Load(fInfo.Stream);
    XmlNamespaceManager xmlNameSpaceMgr = new XmlNamespaceManager(xmlDoc.NameTable);
    xmlNameSpaceMgr.AddNamespace("my", DocReqXmlNameSpace);

    // Get Parent Node
    XmlNode node = xmlDoc.SelectSingleNode(GetXPathFromItemKey(velmaKey), xmlNameSpaceMgr);

    DateTime outDate;
    bool outBool;
    if (DateTime.TryParse(newValue, out outDate))
        node.InnerText = outDate.ToString("yyyy-MM-dd");
    if (Boolean.TryParse(newValue, out outBool))
        node.InnerText = newValue;

    // Update Statuses
    XmlNode statusIDNode = xmlDoc.SelectSingleNode(DocReqStatusIDFieldXPath, xmlNameSpaceMgr);
    statusIDNode.InnerText = updatedStatus.ID.ToString();
    XmlNode statusNode = xmlDoc.SelectSingleNode(DocReqStatusFieldXPath, …
Run Code Online (Sandbox Code Playgroud)

sharepoint sharepoint-2013 csom

12
推荐指数
4
解决办法
1万
查看次数

执行收益率返回后的代码

请考虑以下示例:

class YieldTest
{
    static void Main(string[] args)
    {
        var res = Create(new string[] { "1 12 123", "1234", "12345" });
    }

    static IEnumerable<int> Create(IEnumerable<string> strings)
    {
        foreach(string s in strings)
        {
            yield return s.Length;
            if(s.Contains(' '))
            {
                string[] tokens = s.Split(' ');
                foreach(string t in tokens)
                {
                    yield return t.Length;
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Create回复{8,1,2,3,4,5} 的召唤.

让我困惑的是执行yield return语句后的代码.(他们为什么要命名yield return而不只是yield?)文档告诉我们

在迭代器方法中达到yield return语句时,将返回表达式,并保留代码中的当前位置.

那是什么意思?返回何处发生?什么是迭代器方法?

c# yield-return

10
推荐指数
1
解决办法
5112
查看次数

如何在.net中使用Google OAuth2使用ServiceAccount?

是否有任何示例如何使用.net中的服务帐户访问Google服务API?

private const string SERVICE_ACCOUNT_EMAIL = "xxxxxxxxxxx@developer.gserviceaccount.com";
private const string SERVICE_ACCOUNT_PKCS12_FILE_PATH = @"\path\test-privatekey.p12";

static DriveService BuildService() 
{
    X509Certificate2 certificate = new X509Certificate2(SERVICE_ACCOUNT_PKCS12_FILE_PATH, "notasecret",
    X509KeyStorageFlags.Exportable);

    var provider = new AssertionFlowClient(GoogleAuthenticationServer.Description, certificate)
    {
        ServiceAccountId = SERVICE_ACCOUNT_EMAIL,
        Scope = DriveService.Scopes.Drive.GetStringValue(),
    };
    var auth = new OAuth2Authenticator<AssertionFlowClient>(provider, AssertionFlowClient.GetState);

    return new DriveService((new BaseClientService.Initializer()
    {
        Authenticator = auth
    });
}
Run Code Online (Sandbox Code Playgroud)

这在返回OAuth连接时不成功.如何才能做到这一点?

c# google-api google-oauth

8
推荐指数
1
解决办法
4488
查看次数

如何在C#中设置系统环境变量?

我正在尝试在我的应用程序中设置系统环境变量,但得到一个SecurityException.我测试了我在谷歌找到的所有内容 - 没有成功.这是我的代码(注意,我是我的电脑的管理员,并以管理员身份运行VS2012):

尝试1

new EnvironmentPermission(EnvironmentPermissionAccess.Write, "TEST1").Demand();
Environment.SetEnvironmentVariable("TEST1", "MyTest", EnvironmentVariableTarget.Machine);
Run Code Online (Sandbox Code Playgroud)

尝试2

new EnvironmentPermission(EnvironmentPermissionAccess.Write, "TEST1").Demand();

using (var envKey = Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Session Manager\Environment", true))
{

  Contract.Assert(envKey != null, @"HKLM\System\CurrentControlSet\Control\Session Manager\Environment is missing!");
  envKey.SetValue("TEST1", "TestValue");
}
Run Code Online (Sandbox Code Playgroud)

尝试3 此外,我试图用管理员权限装配我的应用程序.

你有什么其他的建议?

.net c# environment-variables

7
推荐指数
1
解决办法
2万
查看次数

无法加载文件或程序集 Microsoft.VisualStudio.Shell,版本=2.0.0.0

上周我在 R2 开发服务器上安装了 4.5.2 框架,从那以后一直出现此错误。这些文件不包含对 VisualStudio.Shell 的引用。有任何想法吗?

解析器错误说明:解析服务此请求所需的资源时发生错误。请查看以下特定解析错误详细信息并适当修改您的源文件。

分析器错误消息:Reference.svcmap:无法加载文件或程序集“Microsoft.VisualStudio.Shell,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。该系统找不到指定的文件。

来源错误:

[没有相关源行]

源文件:/App_WebReferences/ClientApplicationServer/ 行:1

程序集加载跟踪:以下信息有助于确定程序集“Microsoft.VisualStudio.Shell,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”无法加载的原因。

.net c# .net-4.5.2

6
推荐指数
1
解决办法
1万
查看次数

C#打开虚拟串行端口会引发ArgumentException

我有一个通过串行端口连接到设备的实用程序。为了测试该应用程序,我正在为设备编写一个模拟器。

这两个应用程序都打算在同一Windows 7计算机上运行。

我正在用C#编写模拟器。我使用com0com创建了一对虚拟端口(在本例中为CNCA8和CNCB8,因为我已经有几个现有的端口对)。

我正在尝试在模拟器中打开CNCB8(应用程序尚未运行),但出现异常:

System.dll中发生了'System.ArgumentException'类型的未处理异常

附加信息:给定的端口名不能以COM / com开头或不能解析为有效的串行端口。

样例代码:

        SerialPort port = new SerialPort("CNCB8", 9600, Parity.None, 8, StopBits.One);
        port.Handshake = Handshake.None;            
        port.Open();
Run Code Online (Sandbox Code Playgroud)

此问题无关紧要,因为它是未使用的虚拟端口(如果重要,IsOpen将返回false): C#SerialPort#Open()方法由于端口名称而抛出ArgumentException?

编辑:我还确保端口名称出现在SerialPort.GetPortNames()中,并且它出现在Windows的“ com0com串行端口仿真器”下的设备管理器中。我还尝试使用CNCA代替B(具有几个现有的虚拟端口),尝试删除“ HandShake”行,并尝试将波特率更改为115200,以防万一(尽管最终我在那里需要9600)。

c# windows serial-port virtual-serial-port com0com

5
推荐指数
1
解决办法
2527
查看次数

在android中将RGB转换为HSV

我想从像素中获取ARGB值并转换为HSV,然后使用新值设置像素.

我不完全明白该怎么做.谁能帮我?

java rgb android hsv

5
推荐指数
1
解决办法
6648
查看次数

如何将 TestRail 与 Jenkins 集成?

我正在尝试将 TestRail 与 Jenkins 集成,我想从 test rail 运行一些测试用例,它在 jenkins 中调用测试用例,然后将结果写回 TestRail 本身,或类似的东西。

我知道有一个 API,但到目前为止我无法弄清楚如何继续使用这个 API。

任何建议都会有很大帮助。

testing automated-tests jenkins testrail

5
推荐指数
1
解决办法
6219
查看次数